{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Using TensorFlow backend.\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "from keras.models import Model\n",
    "from keras.layers import Input\n",
    "from keras.layers.pooling import GlobalMaxPooling3D\n",
    "from keras import backend as K\n",
    "import json\n",
    "from collections import OrderedDict"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def format_decimal(arr, places=6):\n",
    "    return [round(x * 10**places) / 10**places for x in arr]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "DATA = OrderedDict()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### GlobalMaxPooling3D"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**[pooling.GlobalMaxPooling3D.0] input 6x6x3x4, data_format='channels_last'**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "in shape: (6, 6, 3, 4)\n",
      "in: [0.38825, 0.616859, -0.903684, 0.806884, -0.727288, -0.673966, -0.577175, -0.387585, -0.257311, -0.509074, -0.260107, -0.175546, -0.36369, 0.000508, 0.660501, 0.597718, -0.516095, -0.635432, 0.051806, 0.827972, 0.776157, -0.924706, 0.475891, -0.245901, 0.938555, -0.153749, -0.78604, -0.743216, 0.623975, -0.88669, -0.405761, -0.047077, 0.93782, 0.817619, -0.698627, -0.779825, 0.082966, -0.198865, -0.803914, -0.013523, 0.656264, 0.20553, -0.99514, -0.845919, -0.780934, -0.54633, -0.584082, -0.381479, 0.07203, -0.932858, -0.388963, -0.640372, -0.762033, 0.520289, -0.850815, 0.83055, 0.657538, -0.995219, 0.924136, -0.09163, -0.83776, 0.570101, 0.811735, -0.248129, -0.669459, -0.622836, 0.488153, 0.819239, 0.684766, -0.329173, 0.541295, 0.675745, 0.552436, -0.314967, 0.588244, -0.764561, -0.405427, 0.165388, 0.036045, -0.7066, 0.987815, 0.424845, -0.898345, -0.084084, 0.424759, -0.463452, -0.464603, -0.889256, 0.047486, 0.593987, -0.041217, -0.674434, -0.437693, -0.698919, 0.415884, 0.503516, 0.804258, 0.474695, -0.147267, -0.807198, -0.922972, 0.369532, -0.214226, 0.34421, -0.267339, -0.858829, -0.005027, 0.268902, -0.780515, -0.631282, -0.849371, -0.917874, 0.836846, -0.924663, -0.372928, -0.654793, 0.424881, -0.191001, -0.065471, -0.190241, 0.242612, 0.50302, 0.661795, 0.752624, 0.997382, -0.855365, -0.32887, 0.676928, -0.971298, 0.255031, 0.992944, 0.920315, -0.701749, 0.498835, -0.602105, -0.429089, -0.223093, 0.697324, 0.28202, -0.374132, -0.853237, 0.155149, -0.142508, -0.026731, 0.711557, -0.760329, 0.96257, 0.564756, 0.949534, -0.650766, 0.629502, -0.233374, 0.883736, 0.739934, -0.743874, -0.979671, -0.741152, 0.298812, -0.371033, 0.527766, -0.437489, 0.223583, 0.243828, -0.55173, -0.816909, 0.486478, -0.775805, -0.771127, 0.257302, -0.503247, 0.482245, -0.933177, 0.925204, -0.797343, 0.254914, -0.896295, 0.844552, -0.104987, -0.042015, 0.669821, 0.485591, 0.79295, 0.71022, -0.98106, 0.385392, 0.487241, -0.721945, -0.137225, -0.561388, -0.860093, -0.405372, 0.934276, -0.681378, -0.653806, 0.365876, -0.025413, -0.941276, 0.748423, -0.068356, -0.37818, 0.512049, -0.023829, -0.741006, 0.831751, 0.328934, -0.102942, 0.718859, -0.683469, 0.200563, 0.894991, 0.657668, -0.598746, 0.022755, 0.522319, -0.073882, -0.804642, 0.26334, 0.270388, -0.929466, -0.856754, -0.415344, -0.313372, 0.183426, 0.389712, -0.13669, 0.267677, -0.103692, 0.092267, -0.308091, -0.815648, 0.731113, -0.903322, 0.479109, 0.453396, -0.186222, 0.922729, -0.51175, -0.342943, 0.814511, -0.49118, 0.01984, 0.579895, 0.551583, 0.072452, 0.06921, 0.105062, -0.843648, -0.845754, -0.914257, -0.476628, 0.943076, 0.600765, -0.57839, 0.177649, 0.882733, -0.744126, 0.19834, 0.353603, 0.321448, -0.021532, -0.912286, -0.976321, 0.953735, 0.728738, 0.774056, -0.223702, -0.392139, 0.871716, 0.904176, 0.817472, -0.108349, -0.243322, 0.696851, 0.294765, -0.378404, 0.023223, -0.056536, 0.00843, -0.883246, -0.166887, 0.186547, 0.995559, 0.955487, -0.533726, -0.620319, 0.143232, 0.006773, -0.84867, 0.443894, -0.286692, 0.336941, 0.737114, 0.685147, 0.995486, 0.319731, 0.752595, 0.914183, -0.921486, -0.623803, -0.746874, 0.983195, 0.045201, 0.704022, -0.48814, 0.212983, 0.804913, 0.607457, 0.912172, 0.524048, 0.491039, -0.683808, -0.052074, 0.011772, -0.696081, -0.838388, 0.352116, 0.557666, -0.106409, -0.203297, -0.235525, 0.258501, -0.979959, -0.271258, 0.400242, 0.259567, 0.654292, 0.531344, 0.385603, -0.611688, 0.390777, 0.509049, 0.848735, 0.383149, -0.282188, -0.214481, -0.952738, 0.405073, 0.207771, -0.787771, -0.220239, 0.636125, 0.847282, -0.545681, 0.354197, 0.090131, 0.3493, 0.027655, -0.851193, 0.151183, 0.554166, 0.833061, 0.304484, 0.510478, 0.264557, 0.564173, 0.37418, -0.363554, -0.555926, -0.578213, 0.603473, 0.612426, 0.061843, 0.930518, -0.281149, 0.316313, -0.32654, -0.076674, -0.550143, -0.270616, 0.122509, 0.312293, 0.902981, -0.568318, -0.830544, -0.237136, 0.206914, -0.238464, 0.115264, 0.085986, 0.794753, -0.418926, -0.67702, 0.347306, 0.387257, 0.978449, -0.22155, 0.403102, 0.420239, 0.710413, -0.309675, -0.860662, 0.120393, -0.70259, -0.746061, 0.227933, -0.144496, -0.131834, 0.596067, -0.658217, 0.402641, -0.290841, -0.09253, 0.299098, 0.76734, 0.771498, -0.736308, -0.303653, -0.789741, -0.92502, -0.271928, 0.496916, -0.359055, -0.991886, -0.058305, 0.942584, -0.212367, 0.096656, -0.955793, 0.464261, -0.437379, -0.740252, -0.782254, 0.455522, -0.471223, -0.464391, -0.583588, 0.180465, 0.9469, 0.07899, -0.706283, 0.388804, -0.977952]\n",
      "out shape: (4,)\n",
      "out: [0.997382, 0.995559, 0.992944, 0.9469]\n"
     ]
    }
   ],
   "source": [
    "data_in_shape = (6, 6, 3, 4)\n",
    "L = GlobalMaxPooling3D(data_format='channels_last')\n",
    "\n",
    "layer_0 = Input(shape=data_in_shape)\n",
    "layer_1 = L(layer_0)\n",
    "model = Model(inputs=layer_0, outputs=layer_1)\n",
    "\n",
    "# set weights to random (use seed for reproducibility)\n",
    "np.random.seed(270)\n",
    "data_in = 2 * np.random.random(data_in_shape) - 1\n",
    "result = model.predict(np.array([data_in]))\n",
    "data_out_shape = result[0].shape\n",
    "data_in_formatted = format_decimal(data_in.ravel().tolist())\n",
    "data_out_formatted = format_decimal(result[0].ravel().tolist())\n",
    "print('')\n",
    "print('in shape:', data_in_shape)\n",
    "print('in:', data_in_formatted)\n",
    "print('out shape:', data_out_shape)\n",
    "print('out:', data_out_formatted)\n",
    "\n",
    "DATA['pooling.GlobalMaxPooling3D.0'] = {\n",
    "    'input': {'data': data_in_formatted, 'shape': data_in_shape},\n",
    "    'expected': {'data': data_out_formatted, 'shape': data_out_shape}\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**[pooling.GlobalMaxPooling3D.1] input 3x6x6x3, data_format='channels_first'**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "in shape: (3, 6, 6, 3)\n",
      "in: [0.277769, -0.324717, -0.828538, 0.27327, -0.103567, 0.352973, -0.424245, 0.084882, -0.667369, -0.013292, -0.730917, 0.020447, -0.56258, -0.930644, -0.372492, 0.595927, 0.519345, 0.659999, -0.520708, -0.060843, 0.140459, 0.198302, 0.525008, 0.508564, 0.513985, 0.548433, 0.271675, -0.565162, -0.896829, 0.987411, 0.60257, 0.39488, 0.475653, 0.972433, 0.770687, -0.124055, 0.063721, -0.033112, 0.644369, -0.013292, 0.534668, -0.326544, 0.600593, -0.767345, -0.525822, -0.635478, 0.78529, 0.647604, 0.495353, -0.380054, -0.630392, 0.527641, -0.343892, 0.405197, -0.065455, -0.574106, -0.493058, 0.61698, -0.069963, 0.061398, 0.283554, 0.200134, 0.271897, 0.354207, -0.121057, -0.577198, -0.193319, -0.167341, 0.497023, 0.674803, 0.365241, -0.254262, -0.267867, 0.90223, -0.960562, 0.833171, -0.360657, 0.290601, 0.737442, -0.656173, -0.311816, -0.544177, 0.681235, 0.530767, 0.674875, -0.511685, -0.21598, -0.544874, -0.748065, 0.353896, 0.636164, -0.775521, 0.5865, -0.297541, -0.861248, 0.22867, -0.888671, -0.295104, -0.709528, -0.899564, -0.16393, 0.021623, 0.23474, 0.825311, 0.721459, -0.493389, -0.979736, 0.698471, -0.703132, -0.04078, 0.562869, 0.146215, 0.242378, 0.128583, -0.126576, 0.844964, -0.086925, -0.256643, -0.027035, -0.086452, -0.894753, -0.133146, -0.816638, 0.451658, -0.255915, 0.207106, -0.953338, 0.154891, 0.711507, 0.552913, 0.270079, 0.086661, 0.504137, 0.307568, 0.398189, 0.215775, 0.671061, -0.698273, 0.410016, 0.099416, -0.627346, 0.549992, -0.164331, 0.034348, 0.590066, 0.92972, 0.378298, 0.089394, -0.122002, 0.799597, -0.898577, 0.342121, 0.349146, -0.873754, 0.809214, -0.725883, 0.116275, -0.984905, 0.90297, 0.970574, -0.360332, -0.567881, -0.293379, -0.667952, -0.019398, 0.98689, 0.292639, -0.503247, 0.285036, 0.962412, 0.531141, -0.711738, 0.590837, -0.03818, -0.509948, 0.993819, -0.713531, -0.502959, 0.93902, 0.228422, -0.733549, 0.870819, -0.264938, 0.086713, -0.212239, 0.421389, 0.944225, 0.51483, -0.609763, 0.870499, 0.450325, 0.115636, -0.223657, 0.101299, 0.13507, -0.896412, -0.565573, 0.999984, 0.327004, -0.997556, -0.959269, -0.464409, 0.718972, -0.976404, -0.909224, -0.285734, -0.550932, -0.742748, -0.051686, 0.17573, -0.486922, 0.800684, -0.365589, 0.949438, -0.79079, 0.309471, 0.893778, 0.228833, -0.991483, 0.455905, -0.74118, -0.973829, -0.128453, -0.322105, 0.368388, 0.053265, -0.833365, 0.053488, -0.929212, 0.797721, -0.480447, 0.976208, -0.603665, -0.880425, 0.11799, 0.137532, -0.542881, -0.567981, 0.691378, 0.595018, 0.874114, -0.490439, 0.422964, -0.081195, 0.693414, 0.040398, -0.5139, 0.01765, 0.832531, 0.719754, 0.184169, -0.262441, 0.728868, 0.727507, -0.415659, -0.126001, 0.991441, -0.735834, -0.21292, -0.847618, -0.501583, -0.307857, 0.265733, -0.410378, 0.090611, -0.939076, 0.84597, -0.9419, -0.380818, 0.053254, -0.06047, -0.928466, 0.717656, -0.99591, -0.27484, 0.105627, -0.302143, 0.563677, -0.202599, 0.688501, -0.290023, -0.889994, -0.911171, 0.901656, -0.831682, -0.761493, -0.106594, 0.625755, 0.642205, 0.575505, 0.735844, 0.844365, 0.654655, -0.580658, -0.298061, -0.482898, 0.890663, 0.970613, -0.130704, 0.729929, -0.615835, 0.679908, 0.015235, 0.277839, 0.077468, -0.274756, -0.410074, -0.659845, -0.675442, -0.715599, 0.128837, -0.061376, -0.451418, -0.515382, -0.1831, -0.641734, -0.490475, -0.004924, 0.307804, 0.330933, 0.315949, -0.796586, 0.138971, -0.721134]\n",
      "out shape: (3,)\n",
      "out: [0.987411, 0.999984, 0.991441]\n"
     ]
    }
   ],
   "source": [
    "data_in_shape = (3, 6, 6, 3)\n",
    "L = GlobalMaxPooling3D(data_format='channels_first')\n",
    "\n",
    "layer_0 = Input(shape=data_in_shape)\n",
    "layer_1 = L(layer_0)\n",
    "model = Model(inputs=layer_0, outputs=layer_1)\n",
    "\n",
    "# set weights to random (use seed for reproducibility)\n",
    "np.random.seed(271)\n",
    "data_in = 2 * np.random.random(data_in_shape) - 1\n",
    "result = model.predict(np.array([data_in]))\n",
    "data_out_shape = result[0].shape\n",
    "data_in_formatted = format_decimal(data_in.ravel().tolist())\n",
    "data_out_formatted = format_decimal(result[0].ravel().tolist())\n",
    "print('')\n",
    "print('in shape:', data_in_shape)\n",
    "print('in:', data_in_formatted)\n",
    "print('out shape:', data_out_shape)\n",
    "print('out:', data_out_formatted)\n",
    "\n",
    "DATA['pooling.GlobalMaxPooling3D.1'] = {\n",
    "    'input': {'data': data_in_formatted, 'shape': data_in_shape},\n",
    "    'expected': {'data': data_out_formatted, 'shape': data_out_shape}\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**[pooling.GlobalMaxPooling3D.2] input 5x3x2x1, data_format='channels_last'**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "in shape: (5, 3, 2, 1)\n",
      "in: [-0.504559, 0.757141, 0.875796, -0.387981, -0.0693, -0.652691, -0.555212, -0.434044, 0.235791, -0.605425, 0.718481, -0.209725, 0.39433, -0.062265, -0.773059, 0.044988, 0.788582, -0.418206, 0.614434, -0.961147, 0.540911, 0.289499, 0.209071, -0.023188, 0.527788, -0.515541, 0.942285, 0.522851, -0.896798, -0.850198]\n",
      "out shape: (1,)\n",
      "out: [0.942285]\n"
     ]
    }
   ],
   "source": [
    "data_in_shape = (5, 3, 2, 1)\n",
    "L = GlobalMaxPooling3D(data_format='channels_last')\n",
    "\n",
    "layer_0 = Input(shape=data_in_shape)\n",
    "layer_1 = L(layer_0)\n",
    "model = Model(inputs=layer_0, outputs=layer_1)\n",
    "\n",
    "# set weights to random (use seed for reproducibility)\n",
    "np.random.seed(272)\n",
    "data_in = 2 * np.random.random(data_in_shape) - 1\n",
    "result = model.predict(np.array([data_in]))\n",
    "data_out_shape = result[0].shape\n",
    "data_in_formatted = format_decimal(data_in.ravel().tolist())\n",
    "data_out_formatted = format_decimal(result[0].ravel().tolist())\n",
    "print('')\n",
    "print('in shape:', data_in_shape)\n",
    "print('in:', data_in_formatted)\n",
    "print('out shape:', data_out_shape)\n",
    "print('out:', data_out_formatted)\n",
    "\n",
    "DATA['pooling.GlobalMaxPooling3D.2'] = {\n",
    "    'input': {'data': data_in_formatted, 'shape': data_in_shape},\n",
    "    'expected': {'data': data_out_formatted, 'shape': data_out_shape}\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### export for Keras.js tests"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "\n",
    "filename = '../../../test/data/layers/pooling/GlobalMaxPooling3D.json'\n",
    "if not os.path.exists(os.path.dirname(filename)):\n",
    "    os.makedirs(os.path.dirname(filename))\n",
    "with open(filename, 'w') as f:\n",
    "    json.dump(DATA, f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{\"pooling.GlobalMaxPooling3D.0\": {\"input\": {\"data\": [0.38825, 0.616859, -0.903684, 0.806884, -0.727288, -0.673966, -0.577175, -0.387585, -0.257311, -0.509074, -0.260107, -0.175546, -0.36369, 0.000508, 0.660501, 0.597718, -0.516095, -0.635432, 0.051806, 0.827972, 0.776157, -0.924706, 0.475891, -0.245901, 0.938555, -0.153749, -0.78604, -0.743216, 0.623975, -0.88669, -0.405761, -0.047077, 0.93782, 0.817619, -0.698627, -0.779825, 0.082966, -0.198865, -0.803914, -0.013523, 0.656264, 0.20553, -0.99514, -0.845919, -0.780934, -0.54633, -0.584082, -0.381479, 0.07203, -0.932858, -0.388963, -0.640372, -0.762033, 0.520289, -0.850815, 0.83055, 0.657538, -0.995219, 0.924136, -0.09163, -0.83776, 0.570101, 0.811735, -0.248129, -0.669459, -0.622836, 0.488153, 0.819239, 0.684766, -0.329173, 0.541295, 0.675745, 0.552436, -0.314967, 0.588244, -0.764561, -0.405427, 0.165388, 0.036045, -0.7066, 0.987815, 0.424845, -0.898345, -0.084084, 0.424759, -0.463452, -0.464603, -0.889256, 0.047486, 0.593987, -0.041217, -0.674434, -0.437693, -0.698919, 0.415884, 0.503516, 0.804258, 0.474695, -0.147267, -0.807198, -0.922972, 0.369532, -0.214226, 0.34421, -0.267339, -0.858829, -0.005027, 0.268902, -0.780515, -0.631282, -0.849371, -0.917874, 0.836846, -0.924663, -0.372928, -0.654793, 0.424881, -0.191001, -0.065471, -0.190241, 0.242612, 0.50302, 0.661795, 0.752624, 0.997382, -0.855365, -0.32887, 0.676928, -0.971298, 0.255031, 0.992944, 0.920315, -0.701749, 0.498835, -0.602105, -0.429089, -0.223093, 0.697324, 0.28202, -0.374132, -0.853237, 0.155149, -0.142508, -0.026731, 0.711557, -0.760329, 0.96257, 0.564756, 0.949534, -0.650766, 0.629502, -0.233374, 0.883736, 0.739934, -0.743874, -0.979671, -0.741152, 0.298812, -0.371033, 0.527766, -0.437489, 0.223583, 0.243828, -0.55173, -0.816909, 0.486478, -0.775805, -0.771127, 0.257302, -0.503247, 0.482245, -0.933177, 0.925204, -0.797343, 0.254914, -0.896295, 0.844552, -0.104987, -0.042015, 0.669821, 0.485591, 0.79295, 0.71022, -0.98106, 0.385392, 0.487241, -0.721945, -0.137225, -0.561388, -0.860093, -0.405372, 0.934276, -0.681378, -0.653806, 0.365876, -0.025413, -0.941276, 0.748423, -0.068356, -0.37818, 0.512049, -0.023829, -0.741006, 0.831751, 0.328934, -0.102942, 0.718859, -0.683469, 0.200563, 0.894991, 0.657668, -0.598746, 0.022755, 0.522319, -0.073882, -0.804642, 0.26334, 0.270388, -0.929466, -0.856754, -0.415344, -0.313372, 0.183426, 0.389712, -0.13669, 0.267677, -0.103692, 0.092267, -0.308091, -0.815648, 0.731113, -0.903322, 0.479109, 0.453396, -0.186222, 0.922729, -0.51175, -0.342943, 0.814511, -0.49118, 0.01984, 0.579895, 0.551583, 0.072452, 0.06921, 0.105062, -0.843648, -0.845754, -0.914257, -0.476628, 0.943076, 0.600765, -0.57839, 0.177649, 0.882733, -0.744126, 0.19834, 0.353603, 0.321448, -0.021532, -0.912286, -0.976321, 0.953735, 0.728738, 0.774056, -0.223702, -0.392139, 0.871716, 0.904176, 0.817472, -0.108349, -0.243322, 0.696851, 0.294765, -0.378404, 0.023223, -0.056536, 0.00843, -0.883246, -0.166887, 0.186547, 0.995559, 0.955487, -0.533726, -0.620319, 0.143232, 0.006773, -0.84867, 0.443894, -0.286692, 0.336941, 0.737114, 0.685147, 0.995486, 0.319731, 0.752595, 0.914183, -0.921486, -0.623803, -0.746874, 0.983195, 0.045201, 0.704022, -0.48814, 0.212983, 0.804913, 0.607457, 0.912172, 0.524048, 0.491039, -0.683808, -0.052074, 0.011772, -0.696081, -0.838388, 0.352116, 0.557666, -0.106409, -0.203297, -0.235525, 0.258501, -0.979959, -0.271258, 0.400242, 0.259567, 0.654292, 0.531344, 0.385603, -0.611688, 0.390777, 0.509049, 0.848735, 0.383149, -0.282188, -0.214481, -0.952738, 0.405073, 0.207771, -0.787771, -0.220239, 0.636125, 0.847282, -0.545681, 0.354197, 0.090131, 0.3493, 0.027655, -0.851193, 0.151183, 0.554166, 0.833061, 0.304484, 0.510478, 0.264557, 0.564173, 0.37418, -0.363554, -0.555926, -0.578213, 0.603473, 0.612426, 0.061843, 0.930518, -0.281149, 0.316313, -0.32654, -0.076674, -0.550143, -0.270616, 0.122509, 0.312293, 0.902981, -0.568318, -0.830544, -0.237136, 0.206914, -0.238464, 0.115264, 0.085986, 0.794753, -0.418926, -0.67702, 0.347306, 0.387257, 0.978449, -0.22155, 0.403102, 0.420239, 0.710413, -0.309675, -0.860662, 0.120393, -0.70259, -0.746061, 0.227933, -0.144496, -0.131834, 0.596067, -0.658217, 0.402641, -0.290841, -0.09253, 0.299098, 0.76734, 0.771498, -0.736308, -0.303653, -0.789741, -0.92502, -0.271928, 0.496916, -0.359055, -0.991886, -0.058305, 0.942584, -0.212367, 0.096656, -0.955793, 0.464261, -0.437379, -0.740252, -0.782254, 0.455522, -0.471223, -0.464391, -0.583588, 0.180465, 0.9469, 0.07899, -0.706283, 0.388804, -0.977952], \"shape\": [6, 6, 3, 4]}, \"expected\": {\"data\": [0.997382, 0.995559, 0.992944, 0.9469], \"shape\": [4]}}, \"pooling.GlobalMaxPooling3D.1\": {\"input\": {\"data\": [0.277769, -0.324717, -0.828538, 0.27327, -0.103567, 0.352973, -0.424245, 0.084882, -0.667369, -0.013292, -0.730917, 0.020447, -0.56258, -0.930644, -0.372492, 0.595927, 0.519345, 0.659999, -0.520708, -0.060843, 0.140459, 0.198302, 0.525008, 0.508564, 0.513985, 0.548433, 0.271675, -0.565162, -0.896829, 0.987411, 0.60257, 0.39488, 0.475653, 0.972433, 0.770687, -0.124055, 0.063721, -0.033112, 0.644369, -0.013292, 0.534668, -0.326544, 0.600593, -0.767345, -0.525822, -0.635478, 0.78529, 0.647604, 0.495353, -0.380054, -0.630392, 0.527641, -0.343892, 0.405197, -0.065455, -0.574106, -0.493058, 0.61698, -0.069963, 0.061398, 0.283554, 0.200134, 0.271897, 0.354207, -0.121057, -0.577198, -0.193319, -0.167341, 0.497023, 0.674803, 0.365241, -0.254262, -0.267867, 0.90223, -0.960562, 0.833171, -0.360657, 0.290601, 0.737442, -0.656173, -0.311816, -0.544177, 0.681235, 0.530767, 0.674875, -0.511685, -0.21598, -0.544874, -0.748065, 0.353896, 0.636164, -0.775521, 0.5865, -0.297541, -0.861248, 0.22867, -0.888671, -0.295104, -0.709528, -0.899564, -0.16393, 0.021623, 0.23474, 0.825311, 0.721459, -0.493389, -0.979736, 0.698471, -0.703132, -0.04078, 0.562869, 0.146215, 0.242378, 0.128583, -0.126576, 0.844964, -0.086925, -0.256643, -0.027035, -0.086452, -0.894753, -0.133146, -0.816638, 0.451658, -0.255915, 0.207106, -0.953338, 0.154891, 0.711507, 0.552913, 0.270079, 0.086661, 0.504137, 0.307568, 0.398189, 0.215775, 0.671061, -0.698273, 0.410016, 0.099416, -0.627346, 0.549992, -0.164331, 0.034348, 0.590066, 0.92972, 0.378298, 0.089394, -0.122002, 0.799597, -0.898577, 0.342121, 0.349146, -0.873754, 0.809214, -0.725883, 0.116275, -0.984905, 0.90297, 0.970574, -0.360332, -0.567881, -0.293379, -0.667952, -0.019398, 0.98689, 0.292639, -0.503247, 0.285036, 0.962412, 0.531141, -0.711738, 0.590837, -0.03818, -0.509948, 0.993819, -0.713531, -0.502959, 0.93902, 0.228422, -0.733549, 0.870819, -0.264938, 0.086713, -0.212239, 0.421389, 0.944225, 0.51483, -0.609763, 0.870499, 0.450325, 0.115636, -0.223657, 0.101299, 0.13507, -0.896412, -0.565573, 0.999984, 0.327004, -0.997556, -0.959269, -0.464409, 0.718972, -0.976404, -0.909224, -0.285734, -0.550932, -0.742748, -0.051686, 0.17573, -0.486922, 0.800684, -0.365589, 0.949438, -0.79079, 0.309471, 0.893778, 0.228833, -0.991483, 0.455905, -0.74118, -0.973829, -0.128453, -0.322105, 0.368388, 0.053265, -0.833365, 0.053488, -0.929212, 0.797721, -0.480447, 0.976208, -0.603665, -0.880425, 0.11799, 0.137532, -0.542881, -0.567981, 0.691378, 0.595018, 0.874114, -0.490439, 0.422964, -0.081195, 0.693414, 0.040398, -0.5139, 0.01765, 0.832531, 0.719754, 0.184169, -0.262441, 0.728868, 0.727507, -0.415659, -0.126001, 0.991441, -0.735834, -0.21292, -0.847618, -0.501583, -0.307857, 0.265733, -0.410378, 0.090611, -0.939076, 0.84597, -0.9419, -0.380818, 0.053254, -0.06047, -0.928466, 0.717656, -0.99591, -0.27484, 0.105627, -0.302143, 0.563677, -0.202599, 0.688501, -0.290023, -0.889994, -0.911171, 0.901656, -0.831682, -0.761493, -0.106594, 0.625755, 0.642205, 0.575505, 0.735844, 0.844365, 0.654655, -0.580658, -0.298061, -0.482898, 0.890663, 0.970613, -0.130704, 0.729929, -0.615835, 0.679908, 0.015235, 0.277839, 0.077468, -0.274756, -0.410074, -0.659845, -0.675442, -0.715599, 0.128837, -0.061376, -0.451418, -0.515382, -0.1831, -0.641734, -0.490475, -0.004924, 0.307804, 0.330933, 0.315949, -0.796586, 0.138971, -0.721134], \"shape\": [3, 6, 6, 3]}, \"expected\": {\"data\": [0.987411, 0.999984, 0.991441], \"shape\": [3]}}, \"pooling.GlobalMaxPooling3D.2\": {\"input\": {\"data\": [-0.504559, 0.757141, 0.875796, -0.387981, -0.0693, -0.652691, -0.555212, -0.434044, 0.235791, -0.605425, 0.718481, -0.209725, 0.39433, -0.062265, -0.773059, 0.044988, 0.788582, -0.418206, 0.614434, -0.961147, 0.540911, 0.289499, 0.209071, -0.023188, 0.527788, -0.515541, 0.942285, 0.522851, -0.896798, -0.850198], \"shape\": [5, 3, 2, 1]}, \"expected\": {\"data\": [0.942285], \"shape\": [1]}}}\n"
     ]
    }
   ],
   "source": [
    "print(json.dumps(DATA))"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
